package com.base.common.util;


import java.security.MessageDigest;

/**
 * The class use for password encryption
 * @author Administrator
 */
public class MD5Util {
	//defined a global array
	private final static String[] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d","e", "f"}; 
	
	
//	/**
//	 * The method use for return the result with number and character
//	 * @param value
//	 * @return
//	 */
//	private static String onBytesToString(byte[] bytes) {
//		StringBuffer sb = new StringBuffer();
//		for (int i = 0; i < bytes.length; i++) {
//			int index = bytes[i];
//			if (index < 0) {
//				index+=256;
//			}
//			int j = index / 16;
//			int k = index % 16;
//			sb.append(hexDigits[j] + hexDigits[k]);
//		}
//		return sb.toString();
//	}
//	
//	/**
//	 * the method use for generate the MD5 code 
//	 * @param value
//	 * @return
//	 */
//	public static String MD5Code(String value) {
//		String result = null;
//		try {
//			byte[] tempByte = value.getBytes();
//			MessageDigest md = MessageDigest.getInstance("MD5");
//			result = onBytesToString(md.digest(tempByte));
//			return result ;
//		} catch (Exception e) {
//			return null;
//		}
//	}
	
	/**
	 * md5加密成32位
	 * 
	 * @param s
	 * 
	 * @return String
	 */
	public static String md5(String s) {
		char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
				'a', 'b', 'c', 'd', 'e', 'f' };
		try {
			byte[] strTemp = s.getBytes();
			MessageDigest mdTemp = MessageDigest.getInstance("MD5");
			mdTemp.update(strTemp);
			byte[] md = mdTemp.digest();
			int j = md.length;
			char str[] = new char[j * 2];
			int k = 0;
			for (int i = 0; i < j; i++) {
				byte byte0 = md[i];
				str[k++] = hexDigits[byte0 >>> 4 & 0xf];
				str[k++] = hexDigits[byte0 & 0xf];
			}
			return new String(str);
		} catch (Exception e) {
			return null;
		}
	}
	
	 // 加密后解密   
	 public static String JM(String inStr) {
	  char[] a = inStr.toCharArray();
	  for (int i = 0; i < a.length; i++) {   
	   a[i] = (char) (a[i] ^ 't');   
	  }   
	  String k = new String(a);   
	  return k;   
	 }   
	

}
